﻿using System;
using System.Runtime.Serialization;
using System.ComponentModel.DataAnnotations;


namespace NetBay.Core.BusinessEntities.Workflow
{
    [DataContract]
    public class WkfTuple
    {

        /// <summary>
        /// Gets or sets the key id.
        /// </summary>
        /// <value>The key id.</value>
        [DataMember]
        [Key]
        public Guid KeyId { get; set; }

        /// <summary>
        /// Gets or sets the organization id.
        /// </summary>
        /// <value>The organization id.</value>
        [DataMember]
        public long OrganizationId { get; set; }

        /// <summary>
        /// Gets or sets the folder type id.
        /// </summary>
        /// <value>The folder type id.</value>
        [DataMember]
        public long FolderTypeId { get; set; }

        /// <summary>
        /// Gets or sets the message count.
        /// </summary>
        /// <value>The message count.</value>
        [DataMember]
        public long MessageCount { get; set; }

        /// <summary>
        /// Gets or sets the message count.
        /// </summary>
        /// <value>The message count.</value>
        [DataMember]
        public long MessageTotalCount { get; set; }

        /// <summary>
        /// Initializes a new instance of the <see cref="WkfTuple" /> class.
        /// </summary>
        public WkfTuple()
        {
            KeyId = Guid.NewGuid();
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="WkfTuple" /> class.
        /// </summary>
        /// <param name="OrganizationId">The organization id.</param>
        /// <param name="FolderTypeId">The folder type id.</param>
        /// <param name="MessageCount">The message count.</param>
        /// <param name="MessageTotalCount">The message total count.</param>
        public WkfTuple(long OrganizationId, long FolderTypeId, long MessageCount, long MessageTotalCount)
        : this()
        {
            this.KeyId = Guid.NewGuid();
            this.OrganizationId = OrganizationId;
            this.FolderTypeId = FolderTypeId;
            this.MessageCount = MessageCount;
            this.MessageTotalCount = MessageTotalCount;
        }


    }
}
